<?php

class banco {

    public $id;

    public function conectar($server, $user, $password, $nomebanco = null) {
        $this->servidor = $server;
        $this->usuario = $user;
        $this->senha = $password;
        if ($nomebanco)
            $this->id = mysqli_connect($server, $user, $password, $nomebanco);
        else
            $this->id = mysqli_connect($server, $user, $password);
        return $this->id;
    }

    public function selecionarbanco($nomebanco) {
        $this->bd = $nomebanco;
        if ($this->id)
            return mysqli_select_db($this->id, $nomebanco);
        else
            return false;
    }

}

function dateShift($str) {
    if (preg_match("#^\d{4}-\d{2}-\d{2}$#", $str))
        return preg_replace("#^(\d{4})-(\d{2})-(\d{2})$#", "$3/$2/$1", $str);
    elseif (preg_match("#^\d{2}\/\d{2}\/\d{4}$#", $str))
        return preg_replace("#^(\d{2})\/(\d{2})\/(\d{4})$#", "$3-$2-$1", $str);
    elseif (preg_match("#^\d{4}-\d{2}-\d{2} [\d\:]{8}$#", $str))
        return preg_replace("#^(\d{4})-(\d{2})-(\d{2}) ([\d\:]{8})$#", "$3/$2/$1 $4", $str);
    elseif (preg_match("#^\d{2}\/\d{2}\/\d{4} [\d\:]{8}$#", $str))
        return preg_replace("#^(\d{2})\/(\d{2})\/(\d{4}) ([\d\:]{8})$#", "$3-$2-$1 $4", $str);
    else
        return false;
}

function startsWith($haystack, $needle) {
    if (is_array($needle))
        $needles = $needle;
    else
        $needles = array($needle);
    foreach ($needles as $needle) {
        if ($needle === "" || strpos($haystack, $needle) === 0)
            return true;
    }
    return false;
}

function endsWith($haystack, $needle) {
    return $needle === "" || substr($haystack, -strlen($needle)) === $needle;
}

function diffDate($d1, $d2, $type = '', $sep = '-') {
    $d1 = explode($sep, $d1);
    $d2 = explode($sep, $d2);
    switch ($type) {
        case 'A':
            $X = 31536000;
            break;
        case 'M':
            $X = 2592000;
            break;
        case 'D':
            $X = 86400;
            break;
        case 'H':
            $X = 3600;
            break;
        case 'MI':
            $X = 60;
            break;
        default:
            $X = 1;
    }
    return floor(((mktime(0, 0, 0, $d2[1], $d2[2], $d2[0]) - mktime(0, 0, 0, $d1[1], $d1[2], $d1[0])) / $X));
}

function inserir_data($data) {
    list($dia, $mes, $ano) = explode('/', $data);
    return "$ano-$mes-$dia";
}

function exibir_data($data, $tipo = 0) {
    if (!$data)
        return '';
    list($ano, $mes, $dia) = explode('-', $data);
    if ($tipo == 0)
        return $dia . '/' . $mes . '/' . $ano;
    else {
        $nomedia = date('w', mktime(0, 0, 0, $mes, $dia, $ano));
        switch ($nomedia) {
            case 0: $nomedia = 'Dom';
                break;
            case 1: $nomedia = 'Seg';
                break;
            case 2: $nomedia = 'Ter';
                break;
            case 3: $nomedia = 'Qua';
                break;
            case 4: $nomedia = 'Qui';
                break;
            case 5: $nomedia = 'Sex';
                break;
            case 6: $nomedia = 'Sab';
        }
        return "$nomedia $dia/$mes";
    }
}

function inserir_hora($hora) {
    list($h, $m, $s) = explode(':', $hora);
    return "$h:$m:$s";
}

function exibir_hora($hora) {
    list($h, $m, $s) = explode(':', $hora);
    return "$h:$m";
}

function formatar_numero($numero) {
    $numerof = str_replace('.', '', $numero);
    $numerof = str_replace(',', '.', $numerof);
    return $numerof;
}

function exibir_numero($numero) {
    $numerof = number_format($numero, 2, ',', '.');
    return $numerof;
}

function enviar_email($emails, $nomes, $titulo, $mensagem, $anexos = array()) {
    if (!is_array($emails))
        $emails = array($emails);
    if (!is_array($nomes))
        $nomes = array($nomes);
    if (empty($mensagem))
        return false;
    require_once('class.phpmailer.php');
    $mail = new PHPMailer(true);
    $mail->IsSMTP();
    try {
        $mail->SMTPDebug = 2;
        $mail->SMTPAuth = true;
        $mail->SMTPSecure = $_SESSION['email']['seguranca'];
        $mail->Host = $_SESSION['email']['host'];
        $mail->Port = $_SESSION['email']['porta'];
        $mail->Username = $_SESSION['email']['usuario'];
        $mail->Password = $_SESSION['email']['senha'];
        $mail->AddReplyTo('atendimento@zenitech.com.br', 'Zenitech');
        for ($i = 0; $i < count($emails); $i++) {
            if (filter_var($emails[$i], FILTER_VALIDATE_EMAIL))
                $mail->AddAddress($emails[$i], @$nomes[$i]);
        }
        if (!empty($anexos)) {
            foreach ($anexos as $nome => $arquivo) {
                $mail->AddAttachment($arquivo, $nome);
            }
        }
        $mail->SetFrom($_SESSION['email']['usuario'], 'EcoFértil');
        $mail->CharSet = 'utf-8';
        $mail->Subject = $titulo;
        $mail->AltBody = strip_tags($mensagem);
        $mail->MsgHTML($mensagem);
        ob_start();
        $mail->Send();
        ob_end_clean();
        return true;
    } catch (phpmailerException $e) {
        return $e->errorMessage();
    } catch (Exception $e) {
        return $e->getMessage();
    }
}

function vah_para($url) {
    ?>
<script type="text/javascript">
        document.location.href = '<? echo $url; ?>';
    </script>
<?php
}

function parseFloat($ptString) {
	if (strlen($ptString) == 0) {
		 return false;
	}
	
	$pString = str_replace(" ", "", $ptString);
	if (substr_count($pString, ",") > 1)
		$pString = str_replace(",", "", $pString);
		
	if (substr_count($pString, ".") > 1)
		$pString = str_replace(".", "", $pString);
		
	$pregResult = array();
	
	$commaset = strpos($pString,',');
	
	if ($commaset === false) {$commaset = -1;}
	
	$pointset = strpos($pString,'.');
	
	if ($pointset === false) {$pointset = -1;}
	
	$pregResultA = array();
	$pregResultB = array();
	
	if ($pointset < $commaset) {
		preg_match('#(([-]?[0-9]+(\.[0-9])?)+(,[0-9]+)?)#', $pString, $pregResultA);
	}
	
	preg_match('#(([-]?[0-9]+(,[0-9])?)+(\.[0-9]+)?)#', $pString, $pregResultB);
	
	if ((isset($pregResultA[0]) && (!isset($pregResultB[0])
		|| strstr($preResultA[0],$pregResultB[0]) == 0
		|| !$pointset))) {
			$numberString = $pregResultA[0];
			$numberString = str_replace('.','',$numberString);
			$numberString = str_replace(',','.',$numberString);
	}
	
	elseif (isset($pregResultB[0]) && (!isset($pregResultA[0])
		|| strstr($pregResultB[0],$preResultA[0]) == 0
		|| !$commaset)) {
			$numberString = $pregResultB[0];
			$numberString = str_replace(',','',$numberString);
	}
	
	else {
		return false;
	}
	
	$result = (float)$numberString;
	return $result; 
} 


function mensagem($msg, $tipo) {
    if ($tipo == '0') {
        ?>

<div class="alert alert-info alert-block"> <a class="close" data-dismiss="alert" href="#">×</a>
  <h4 class="alert-heading">Informacao!</h4>
  <?php echo $msg; ?> </div>
<?php
    } elseif ($tipo == '1') {
        ?>
<div class="alert alert-success alert-block"> <a class="close" data-dismiss="alert" href="#">×</a>
  <h4 class="alert-heading">Sucesso!</h4>
  <?php echo $msg; ?> </div>
<?php
    } elseif ($tipo == '2') {
        ?>
<div class="alert alert-info">
  <button type="button" class="close" data-dismiss="alert">×</button>
  <i class="icon-info-sign"></i><strong>Aviso!</strong>
  <?=$msg?>
</div>
<?php
    } elseif ($tipo == '3') {
        ?>
<div class="alert alert-danger alert-block"> <a class="close" data-dismiss="alert" href="#">×</a>
  <h4 class="alert-heading">Erro!</h4>
  <?php echo $msg; ?> </div>
<?php
    } elseif (empty($tipo)) {
        ?>
<div class="alert alert-info alert-block"> <a class="close" data-dismiss="alert" href="#">×</a> <?php echo $msg; ?> </div>
<?php
    }
}

function valorPorExtenso($valor = 0) {
    $singular = array("centavo", "real", "mil", "milhão", "bilhão", "trilhão", "quatrilhão");
    $plural = array("centavos", "reais", "mil", "milhões", "bilhões", "trilhões",
        "quatrilhões");

    $c = array("", "cem", "duzentos", "trezentos", "quatrocentos",
        "quinhentos", "seiscentos", "setecentos", "oitocentos", "novecentos");
    $d = array("", "dez", "vinte", "trinta", "quarenta", "cinquenta",
        "sessenta", "setenta", "oitenta", "noventa");
    $d10 = array("dez", "onze", "doze", "treze", "quatorze", "quinze",
        "dezesseis", "dezesete", "dezoito", "dezenove");
    $u = array("", "um", "dois", "três", "quatro", "cinco", "seis",
        "sete", "oito", "nove");

    $z = 0;

    $valor = number_format($valor, 2, ".", ".");
    $inteiro = explode(".", $valor);
    for ($i = 0; $i < count($inteiro); $i++)
        for ($ii = strlen($inteiro[$i]); $ii < 3; $ii++)
            $inteiro[$i] = "0" . $inteiro[$i];

    // $fim identifica onde que deve se dar junção de centenas por "e" ou por "," ;)
    $fim = count($inteiro) - ($inteiro[count($inteiro) - 1] > 0 ? 1 : 2);
    for ($i = 0; $i < count($inteiro); $i++) {
        $valor = $inteiro[$i];
        $rc = (($valor > 100) && ($valor < 200)) ? "cento" : $c[$valor[0]];
        $rd = ($valor[1] < 2) ? "" : $d[$valor[1]];
        $ru = ($valor > 0) ? (($valor[1] == 1) ? $d10[$valor[2]] : $u[$valor[2]]) : "";

        $r = $rc . (($rc && ($rd || $ru)) ? " e " : "") . $rd . (($rd &&
                $ru) ? " e " : "") . $ru;
        $t = count($inteiro) - 1 - $i;
        $r .= $r ? " " . ($valor > 1 ? $plural[$t] : $singular[$t]) : "";
        if ($valor == "000")
            $z++; elseif ($z > 0)
            $z--;
        if (($t == 1) && ($z > 0) && ($inteiro[0] > 0))
            $r .= (($z > 1) ? " de " : "") . $plural[$t];
        if ($r)
            $rt = $rt . ((($i > 0) && ($i <= $fim) &&
                    ($inteiro[0] > 0) && ($z < 1)) ? ( ($i < $fim) ? ", " : " e ") : " ") . $r;
    }

    return($rt ? $rt : "zero");
}

function gerar_senha($quantidade = 8) {
    $password = '';
    $CaracteresAceitos = '1abc2def3ghi4jkl5mno6pqr7stu8vwx9ywz0';
    for ($i = 0; $i < $quantidade; $i++) {
        $password .= $CaracteresAceitos{mt_rand(0, strlen($CaracteresAceitos) - 1)};
    }
    return $password;
}

function permissoesArray($array_busca, $array_conteudo) {
    foreach ($array_busca as $value) {
        if (in_array($value, $array_conteudo)) {
            return true;
        }
    }
}

//Detectar Permissão
function dp($guid) {
    global $meubanco;
    $consulta = new consulta();
    $sql = "SELECT 
                p.nome
            FROM permissoes_grupos pg
                INNER JOIN permissoes p ON pg.id_permissao = p.id
            WHERE pg.id_grupo = $guid";
    $consulta->executar($sql, $meubanco->id);
    if ($consulta->numlinhas) {
        do {
            $permissoes[] = $consulta->dados['nome'];
        } while ($consulta->proximo());
        if(!isset($_SESSION['permissoes']))
            $_SESSION['permissoes'] = $permissoes;
        return $permissoes;
    } else return false;
}

//Checar Permissão
function cp($p, $dp) {
    return is_array($dp) ? (in_array($p, $dp) ? true : false) : false;
}

//Checar Grupo do Menu
function cg($p, $dp) {
    return is_array($dp) ? ((strpos(implode('|',array_values($dp)), $p) !== false) ? true : false) : false;
}

$guid = $_SESSION['eco_usuario']['id_grupo'];
?>
